package com.timeshare.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.timeshare.dto.SkillRequest;
import com.timeshare.dto.SkillVO;
import com.timeshare.entity.Skill;

/**
 * 技能服务接口
 */
public interface SkillService extends IService<Skill> {
    
    /**
     * 发布技能
     */
    void publishSkill(Long userId, SkillRequest request);
    
    /**
     * 更新技能
     */
    void updateSkill(Long userId, Long skillId, SkillRequest request);
    
    /**
     * 删除技能
     */
    void deleteSkill(Long userId, Long skillId);
    
    /**
     * 分页查询技能列表
     */
    Page<SkillVO> getSkillList(Long userId, Integer category, String keyword, Integer page, Integer size);
    
    /**
     * 获取技能详情
     */
    SkillVO getSkillDetail(Long userId, Long skillId);
    
    /**
     * 收藏/取消收藏技能
     */
    void toggleFavorite(Long userId, Long skillId);
    
    /**
     * 获取我发布的技能
     */
    Page<SkillVO> getMySkills(Long userId, Integer page, Integer size);
    
    /**
     * 获取我收藏的技能
     */
    Page<SkillVO> getMyFavorites(Long userId, Integer page, Integer size);
    
    /**
     * 获取待审核技能列表（管理员）
     */
    Page<SkillVO> getPendingSkills(Integer page, Integer size);
    
    /**
     * 审核通过技能（管理员）
     */
    void approveSkill(Long skillId);
    
    /**
     * 拒绝技能（管理员）
     */
    void rejectSkill(Long skillId, String reason);
}

